﻿/*
 Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.dialog.add("button",
    function(b) {
        function d(a) {
            var b = this.getValue();
            b
                ? (a.attributes[this.id] = b, "name" == this.id && (a.attributes["data-cke-saved-name"] = b))
                : (delete a.attributes[this.id], "name" == this.id && delete a.attributes["data-cke-saved-name"])
        }

        return{
            title: b.lang.forms.button.title,
            minWidth: 350,
            minHeight: 150,
            onShow: function() {
                delete this.button;
                var a = this.getParentEditor().getSelection().getSelectedElement();
                a &&
                    a.is("input") &&
                    a.getAttribute("type") in { button: 1, reset: 1, submit: 1 } &&
                    (this.button =
                        a, this.setupContent(a))
            },
            onOk: function() {
                var a = this.getParentEditor(),
                    b = this.button,
                    d = !b,
                    c = b
                        ? CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0]
                        : new CKEDITOR.htmlParser.element("input");
                this.commitContent(c);
                var e = new CKEDITOR.htmlParser.basicWriter;
                c.writeHtml(e);
                c = CKEDITOR.dom.element.createFromHtml(e.getHtml(), a.document);
                d ? a.insertElement(c) : (c.replace(b), a.getSelection().selectElement(c))
            },
            contents: [
                {
                    id: "info",
                    label: b.lang.forms.button.title,
                    title: b.lang.forms.button.title,
                    elements: [
                        {
                            id: "name",
                            type: "text",
                            label: b.lang.common.name,
                            "default": "",
                            setup: function(a) {
                                this.setValue(a.data("cke-saved-name") || a.getAttribute("name") || "")
                            },
                            commit: d
                        },
                        {
                            id: "value",
                            type: "text",
                            label: b.lang.forms.button.text,
                            accessKey: "V",
                            "default": "",
                            setup: function(a) { this.setValue(a.getAttribute("value") || "") },
                            commit: d
                        }, {
                            id: "type",
                            type: "select",
                            label: b.lang.forms.button.type,
                            "default": "button",
                            accessKey: "T",
                            items: [
                                [b.lang.forms.button.typeBtn, "button"], [b.lang.forms.button.typeSbm, "submit"], [
                                    b.lang.forms.button.typeRst,
                                    "reset"
                                ]
                            ],
                            setup: function(a) { this.setValue(a.getAttribute("type") || "") },
                            commit: d
                        }
                    ]
                }
            ]
        }
    });
